﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace QuanLyThuChi
{
    public partial class QuanLyLoai : UserControl
    {
        public QuanLyLoai()
        {
            InitializeComponent();
        }
        public_function pf = new public_function();
        connect cn = new connect();
        bool them;
        int vitri = 0;
        private void load_dulieu()
        {
            gridLoaiThu.DataSource = pf.getData("Loai_Ds");
            cobDVT.DataSource = pf.getData("DVT_Ds");
            cobDVT.ValueMember = "MaDVT";
            cobDVT.DisplayMember = "TenDVT";
            battatcontrol(false);
            
        }
        private void QuanLyLoai_Load(object sender, EventArgs e)
        {
            load_dulieu();
        }

        private void gridLoaiThu_SelectionChanged(object sender, EventArgs e)
        {
            try
            {
                gridLoaiThu.CurrentRow.Selected = true;
                txtMaLoai.Text = gridLoaiThu.CurrentRow.Cells["MaLoai"].Value.ToString();
                txtTenLoai.Text = gridLoaiThu.CurrentRow.Cells["TenLoai"].Value.ToString();
                txtGiaThu.Text = gridLoaiThu.CurrentRow.Cells["DonGiaThu"].Value.ToString();
                txtGiaChi.Text = gridLoaiThu.CurrentRow.Cells["DonGiaChi"].Value.ToString();
                cobDVT.SelectedValue = gridLoaiThu.CurrentRow.Cells["MaDVT"].Value.ToString();

            }
            catch
            {
            }
            finally
            {
                
            }
        }
        private void battatcontrol(bool val)
        {           
            cobDVT.Enabled = val;           
            txtGiaChi.Enabled = val;
            txtGiaThu.Enabled = val;
            btnThem.Enabled = !val;
            btnSua.Enabled = !val;
            btnXoa.Enabled = !val;
            gridLoaiThu.Enabled = !val;
            btnLuu.Enabled = val;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            battatcontrol(true);
            txtTenLoai.Text = "";
            txtGiaThu.Text = "";
            txtGiaChi.Text = "";
            them = true;
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            battatcontrol(true);
            them = false;
            vitri = gridLoaiThu.CurrentRow.Index;
        }

        private void txtGiaThu_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtGiaChi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtTenLoai.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập tên loại","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                txtTenLoai.Focus();
            }
            else if (pf.kiemTraTonTai(cobDVT.Text, "DVT_KiemTraTonTai", "dvt") == false)
            {
                MessageBox.Show("Đơn vị tính không có trong CSDL", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                cobDVT.Focus();
            }
            else if (txtGiaChi.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập đơn giá chi","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Error);
                txtGiaChi.Focus();
            }
            else if (txtGiaThu.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập đơn giá thu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtGiaThu.Focus();
            }
            else
            {
                if (them == true)
                {
                    OleDbCommand cmd = new OleDbCommand("Loai_Insert", cn.ketnoi());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new OleDbParameter("tenloai", OleDbType.LongVarChar)).Value = txtTenLoai.Text;
                    cmd.Parameters.Add(new OleDbParameter("dongiathu", OleDbType.Double)).Value = txtGiaThu.Text;
                    cmd.Parameters.Add(new OleDbParameter("dongiachi", OleDbType.Double)).Value = txtGiaChi.Text;
                    cmd.Parameters.Add(new OleDbParameter("donvitinh", OleDbType.Integer)).Value = cobDVT.SelectedValue;
                    cmd.Parameters.Add(new OleDbParameter("ghichu", OleDbType.LongVarChar)).Value = txtGhiChu.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Thêm loại thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();
                        battatcontrol(false);
                    }
                    else
                    {
                        MessageBox.Show("Lỗi trong quá trình thêm", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();

                    }
                }
                else
                {
                    OleDbCommand cmd_update = new OleDbCommand("Loai_Update", cn.ketnoi());
                    cmd_update.CommandType = CommandType.StoredProcedure;
                    cmd_update.Parameters.Add(new OleDbParameter("tenloai", OleDbType.LongVarChar)).Value = txtTenLoai.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("ghichu", OleDbType.LongVarChar)).Value = txtGhiChu.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("maloai", OleDbType.Integer)).Value = txtMaLoai.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("dongiathu", OleDbType.Double)).Value = txtGiaThu.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("dongiachi", OleDbType.Double)).Value = txtGiaChi.Text;
                    cmd_update.Parameters.Add(new OleDbParameter("donvitinh", OleDbType.Integer)).Value = cobDVT.SelectedValue;
                    if (cmd_update.ExecuteNonQuery() == 1)
                    {
                        MessageBox.Show("Cập nhật thông tin thành công", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();
                        battatcontrol(false);
                        gridLoaiThu.CurrentCell = gridLoaiThu.Rows[vitri].Cells[0];
                        gridLoaiThu.Rows[vitri].Selected = true;
                    }
                    else
                    {
                        MessageBox.Show("Lỗi trong quá trình cập nhật", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        load_dulieu();

                    }
                }
            }
        }

    }
}
